package tests.user;

/**
 * Copyright 2007, 2008 Viera K. Proulx
 * This program is distributed under the terms of the 
 * GNU Lesser General Public License (LGPL)
 */

/**
 * <pre>
             +--------------------------+                
             |  AList<T>                |                
             +--------------------------+                
	         | boolean contains(T that) | 
             +--------------------------+                
                         |                    
                        / \                   
                        ---                   
                         |                    
           -------------------------          
           |                       |          
    +-----------+        +----------------+  
    | MTList<T> |        | ConsList<T>    |  
    +-----------+        +----------------+  
    +-----------+     +--| T fist         | 
                      |  | AList<T> rest  |   
                      |  +----------------+ 
                      v
            +--------------+ 
            | T            |   
	        +--------------+
	        +--------------+

	+---------------+    +--------------+
	| Book          |    | Song         |
    +---------------+    +--------------+
    | String title  |    | String title | 
	| Author author |-+  | int    time  |
	| int    year   | |  +--------------+  
    +---------------+ |
                      v
              +-------------+
              | Author      |
              +-------------+
              | String name | 
              | int    age  |
              +-------------+            
 </pre>
 */  

/**
 * A class to represent a list of objects 
 * of the type <code>T</code>
 * 
 * @author Viera K. Proulx
 * @since 30 May 2007
 */
public interface AList<T> {

  /**
   * Does this list contain the given object?
   * 
   * @param that the given object
   * @return true if the list contains the given object
   */
  public boolean contains(T that);
}      
   

